package com.veterinaria.factory;

import java.io.Reader;

import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

import com.veterinaria.dao.AreaDAO;
import com.veterinaria.dao.AtencionDAO;
import com.veterinaria.dao.CargoDAO;
import com.veterinaria.dao.CitaDAO;
import com.veterinaria.dao.ClienteDAO;
import com.veterinaria.dao.CreditoDAO;
import com.veterinaria.dao.DistritoDAO;
import com.veterinaria.dao.EmpleadoDAO;
import com.veterinaria.dao.EspecieDAO;
import com.veterinaria.dao.EstadoDAO;
import com.veterinaria.dao.HCDAO;
import com.veterinaria.dao.HorarioDAO;
import com.veterinaria.dao.LocalDAO;
import com.veterinaria.dao.PacienteDAO;
import com.veterinaria.dao.ProductoDAO;
import com.veterinaria.dao.ProvProdDAO;
import com.veterinaria.dao.ProveedorDAO;
import com.veterinaria.dao.ProvinciaDAO;
import com.veterinaria.dao.RazaDAO;
import com.veterinaria.dao.SalarioDAO;
import com.veterinaria.dao.ServicioDAO;
import com.veterinaria.dao.UsuarioDAO;
import com.veterinaria.services.AreaService;
import com.veterinaria.services.AtencionService;
import com.veterinaria.services.CargoService;
import com.veterinaria.services.CitaService;
import com.veterinaria.services.ClienteService;
import com.veterinaria.services.CreditoService;
import com.veterinaria.services.DistritoService;
import com.veterinaria.services.EmpleadoService;
import com.veterinaria.services.EspecieService;
import com.veterinaria.services.EstadoService;
import com.veterinaria.services.HCService;
import com.veterinaria.services.HorarioService;
import com.veterinaria.services.LocalService;
import com.veterinaria.services.PacienteService;
import com.veterinaria.services.ProductoService;
import com.veterinaria.services.ProvProdService;
import com.veterinaria.services.ProveedorService;
import com.veterinaria.services.ProvinciaService;
import com.veterinaria.services.RazaService;
import com.veterinaria.services.SalarioService;
import com.veterinaria.services.ServicioService;
import com.veterinaria.services.UsuarioService;

public class MysqlDAOFactory extends DAOFactory{

    SqlSessionFactory sqlmapper= null;{
   	 try {
		
   	 Reader reader = Resources.getResourceAsReader("ConfiguracionIbatis.xml");
   	 
   	 sqlmapper = new  SqlSessionFactoryBuilder().build(reader);
   	 } catch (Exception e) {
				e.printStackTrace();
			}
    }
    
	@Override
	public UsuarioService getUsuario() {
		return new UsuarioDAO();
	}

	@Override
	public EmpleadoService getEmpleado() {
		return new EmpleadoDAO();
	}

	@Override
	public ProvinciaService getProvincia() {
		return new ProvinciaDAO();
	}

	@Override
	public CargoService getCargo() {
		return new CargoDAO();
	}

	@Override
	public AreaService getArea() {
		return new AreaDAO();
	}

	@Override
	public HorarioService getHorario() {
		return new HorarioDAO();
	}

	@Override
	public DistritoService getDistrito() {
		return new DistritoDAO();
	}

	@Override
	public SalarioService getSalario() {
		return new SalarioDAO();
	}

	@Override
	public PacienteService getPaciente() {
		return new PacienteDAO();
	}

	@Override
	public EspecieService getEspecie() {
		return new EspecieDAO();
	}

	@Override
	public RazaService getRaza() {
		return new RazaDAO();
	}

	@Override
	public EstadoService getEstado() {
		return new EstadoDAO();
	}

	@Override
	public AtencionService getAtencion() {
		return new AtencionDAO();
	}

	@Override
	public CitaService getCita() {
		return new CitaDAO();
	}

	@Override
	public ClienteService getCliente() {
		return new ClienteDAO();
	}

	@Override
	public CreditoService getCredito() {
		return new CreditoDAO();
	}

	@Override
	public HCService getHC() {
		return new HCDAO();
	}

	@Override
	public LocalService getLocal() {
		return new LocalDAO();
	}

	@Override
	public ProductoService getProducto() {
		return new ProductoDAO();
	}

	@Override
	public ProveedorService getProveedor() {
		return new ProveedorDAO();
	}

	@Override
	public ProvProdService getProvProd() {
		return new ProvProdDAO();
	}

	@Override
	public ServicioService getServicio() {
		return new ServicioDAO();
	}

}
